//
// Created by Ctzzz on 2024/4/28.
//

#ifndef NDKDEMO_MYGLRENDERCONTEXT_H
#define NDKDEMO_MYGLRENDERCONTEXT_H


#include <stdint.h>
#include "GLSampleBase.h"

class MyGLRenderContext {
    MyGLRenderContext();

    ~MyGLRenderContext();

public:
    /**
     * 设置图像数据
     * @param format 格式
     * @param width 宽度
     * @param height 高度
     * @param pData 数据
     */
    void SetImageData(int format, int width, int height, uint8_t *pData);

    /**
     * 设置参数
     * @param paramType 参数类型
     * @param value 值
     */
    void SetParamsInt(int paramType, int value);

    /**
     * 创建
     */
    void OnSurfaceCreated();

    /**
     * 改变
     * @param width 宽度
     * @param height 高度
     */
    void OnSurfaceChanged(int width, int height);

    /**
     * 绘制
     */
    void OnDrawFrame();

    /**
     * 获取实例
     * @return 实例
     */
    static MyGLRenderContext *GetInstance();

    /**
     * 销毁实例
     */
    static void DestroyInstance();

private:
    // 实例
    static MyGLRenderContext *m_pContext;
    // 采样
    GLSampleBase *m_Sample;
};


#endif //NDKDEMO_MYGLRENDERCONTEXT_H
